widget: Redo how gtk_widget_queue_draw() works
authorBenjamin Otte <otte@redhat.com>
Tue, 18 Oct 2016 17:43:32 +0000 (19:43 +0200)
committerBenjamin Otte <otte@redhat.com>
Thu, 27 Oct 2016 03:07:23 +0000 (05:07 +0200)
commit27ab75250cf33c75077b444a164ea0cd442c6e7c
tree49ebc8a499672d61c3161c5745599a9b9415d70d
parent77038a9b0b435270e701aa5b8d11e1f5e5b18c85
widget: Redo how gtk_widget_queue_draw() works

Before, we would immediately invalidate the GdkWindow of the widget, now
we call the parent's GtkWidgetClass.queue_draw_child() function.
This allows the parent to track redraw queueing of children.

By default GtkWidgetClass.queue_draw_child() will again chain up to its
parent while respecting the GdkWindow hierarchy for clipping.
GtkWindow is then the only widget actually invalidating the GdkWindow.

This essentially moves redraw queueing from GDK to GTK.
gtk/gtkwidget.c
gtk/gtkwidget.h
gtk/gtkwindow.c